package br.com.fogas.webservice.repository.soap;

import android.content.Context;
import br.com.fogas.utils.exception.ParseXmlException;
import br.com.fogas.webservice.exception.ERaiseWebServiceException;
import br.com.fogas.webservice.exception.RespostaWebServiceException;
import br.com.fogas.webservice.exception.SemConexaoInternetException;
import br.com.fogas.webservice.exception.ServidorForaException;
import br.com.fogas.webservice.exception.TempoEsperaRespostaException;
import br.com.fogas.webservice.exception.WebServiceException;
import br.com.fogas.webservice.parser.sincronizacao_ok.SincronizacaoOkEnvelope;
import br.com.fogas.webservice.parser.sincronizacao_ok.SincronizacaoOkRequest;
import br.com.fogas.webservice.parser.sincronizacao_ok.SincronizacaoOkResponse;
import br.com.fogas.webservice.repository.IRepositoryHandler;
import br.com.fogas.webservice.soap.impl.SincronizacaoOkSOAP;

public class SincronizacaoOkRepository implements IRepositoryHandler<SincronizacaoOkResponse> {

	private Context context;
	private SincronizacaoOkRequest request;

	public SincronizacaoOkRepository(Context context, SincronizacaoOkRequest request) {
		this.context = context;
		this.request = request;
	}
	
	@Override
	public SincronizacaoOkResponse getResponse()
			throws SemConexaoInternetException, ParseXmlException,
			TempoEsperaRespostaException, ServidorForaException,
			RespostaWebServiceException, WebServiceException,
			ERaiseWebServiceException {

		SincronizacaoOkEnvelope envelope = new SincronizacaoOkEnvelope();
		envelope.body.request= request;
		
		SincronizacaoOkSOAP soap = new SincronizacaoOkSOAP(context, envelope);
		return soap.getResponse();
	}

}
